/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Service.Helpers;

import DAO.exceptions.NonexistentEntityException;
import Entidad.Actividad;
import Entidad.Flujo;
import Facade.FacadeFactory;
import VO.ActividadVO;
import VO.FlujoVO;
import VO.RolVO;
import VO.TareaVO;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author David
 */
public class CreateXMLFromDB {
    
    //public static void createXML() throws IOException, NonexistentEntityException {
    public static String createXML() throws IOException, NonexistentEntityException {
        String juan="";//boorar
            int idProyecto = App.Sesion.getIdproyecto();
            int idcount = 1;
            juan += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";//borrar
            juan += "<projects>";//borrar
            try {
              Collection<FlujoVO> flujos = FacadeFactory.createFacade().showProject(idProyecto).getFlujoCollection();
              Iterator flujoIterator = flujos.iterator();
              while(flujoIterator.hasNext()) {
                  FlujoVO flujoVO = (FlujoVO)flujoIterator.next();
                  String idflujo = flujoVO.getIdflujo().toString();
                  String nombre = flujoVO.getNombre();
                  Date fecha = flujoVO.getFecha();
                  SimpleDateFormat simpleDateformat=new SimpleDateFormat("yyyy,MM,dd");
                  String date = simpleDateformat.format(fecha);
                  juan += "<project id = \""+idflujo+"\" name= \""+nombre+"\" startdate = \""+date+"\">"; //borrar
                  
                  Collection<ActividadVO> actividades = flujoVO.getActividadCollection();
                  Iterator actividadIterator = actividades.iterator();
                  while(actividadIterator.hasNext()) {
                      ActividadVO actividadVO = ((ActividadVO) actividadIterator.next());
                      String idactividad = actividadVO.getIdactividad().toString();
                      String nombreActividad = actividadVO.getNombre();
                      idcount=idcount+1;
                      juan += "<task id=\""+idcount+"\">";//borrar
                      juan += "<name>"+nombreActividad+"</name>";//borrar
                      
                      Date fechaActividad  = actividadVO.getFecha();
                      String dateActividad = simpleDateformat.format(fechaActividad);
                      juan += "<est>"+dateActividad+"</est>";//borrar
                      juan += "<duration>"+actividadVO.getDuracion()+"</duration>";//borrar
                      juan += "<percentcompleted>"+actividadVO.getPorcentaje()+"</percentcompleted>";//borrar
                      if(actividadVO.getPredecesor() != null) {
                           juan += "<predecessortasks>"+actividadVO.getPredecesor().toString()+"</predecessortasks>";//borrar
                           
                      }
                      else{
                          juan += "<predecessortasks></predecessortasks>";//borrar
                           
                      }
                      juan += "<childtasks>";//borrar
                      
                      Collection<TareaVO> tareas = actividadVO.getTareaCollection();
                      Iterator tareaIterator = tareas.iterator();
                      while(tareaIterator.hasNext()) {
                         TareaVO tareaVO = ((TareaVO) tareaIterator.next());
                         String idtarea = tareaVO.getIdtarea().toString();
                         String nombreTarea = tareaVO.getNombre();
                         idcount=idcount+1;
                         juan += "<task id=\""+idcount+"\">";//borrar
                         juan += "<name>"+nombreTarea+"</name>";//borrar
                         Date fechaTarea  = tareaVO.getFecha();
                         String dateTarea = simpleDateformat.format(fechaTarea);
                         juan += "<est>"+dateTarea+"</est>";//borrar
                         juan += "<duration>"+tareaVO.getDuracion()+"</duration>";//borrar
                         juan += "<percentcompleted>"+tareaVO.getPorcentaje()+"</percentcompleted>";//borra
                         if(tareaVO.getPredecesor() != null){ 
                            juan += "<predecessortasks>"+tareaVO.getPredecesor().toString()+"</predecessortasks>";//borrar 
                           
                         }
                         else{
                             juan += "<predecessortasks></predecessortasks>";//borrar
                            
                         }
                         juan += "<childtasks></childtasks>";//borrar
                         juan += "</task>";//borrar
                         
                         
                      }
                      juan += "</childtasks>";//borrar
                      juan += "</task>";//borrar
                      
                  }
                  juan += "</project>";//borrar
                  
              }
              }
              catch(NullPointerException e) {
                  System.out.println("Proyecto vacio!");
              }
              finally {
                  juan += "</projects>";//borrar
                  
              }
        return juan;
    }
    
}
